home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / share / idl / bonobo-2.0 / Bonobo_Property.idl < prev    next >
Text File  |  2006-01-09  |  5KB  |  224 lines

  1. /*
  2.  * bonobo-property.idl: The Bonobo Property interfaces.
  3.  *
  4.  * Authors:
  5.  *   Nat Friedman   (nat@nat.org)
  6.  *   Michael Meeks  (michael@ximian.com)
  7.  *   Dietmar Maurer (dietmar@ximian.com)
  8.  *   Mike Kestner   (mkestner@ameritech.net)
  9.  *
  10.  * Copyright 1999, 2000, 2001 Ximian, Inc.
  11.  * Copyright 2000, Mike Kestner
  12.  */
  13.  
  14.  /*
  15.   * Each PropertyBag is aggregated with an EventSource, so that it is
  16.   * possible to attach event listeners. The event name is composed
  17.   * of "Bonobo/Property", the type of the event and finally the property
  18.   * name - everything separated by colons. At the moment there is only one 
  19.   * type defined - "change". So if a property with name "autosave" changes
  20.   * its value, we emit an event with the name: 
  21.   * "Bonobo/Property:change:autosave"
  22.   */
  23.  
  24. #ifndef BONOBO_PROPERTY_IDL
  25. #define BONOBO_PROPERTY_IDL
  26.  
  27. #include "Bonobo_Unknown.idl"
  28. #include "Bonobo_Listener.idl"
  29.  
  30. module Bonobo {
  31.  
  32. struct Pair {
  33.     string name;
  34.     any    value;
  35. };
  36.  
  37. typedef sequence<Pair> PropertySet;
  38.  
  39. typedef sequence<string> KeyList;
  40.  
  41. typedef long PropertyFlags;
  42. const PropertyFlags PROPERTY_READABLE        = 1;
  43. const PropertyFlags PROPERTY_WRITEABLE       = 2;
  44. const PropertyFlags PROPERTY_NO_LISTENING    = 4;
  45. const PropertyFlags PROPERTY_NO_AUTONOTIFY   = 8;
  46. const PropertyFlags PROPERTY_NO_PERSIST      = 16;
  47.  
  48. interface PropertyBag : Bonobo::Unknown {
  49.  
  50.     exception NotFound {};
  51.     exception InvalidType {};
  52.     exception _ReadOnly {};
  53.     exception BackendFailed {};
  54.  
  55.     /**
  56.      * getKeys:
  57.      *
  58.      * Returns: A list of keys matching @filter.
  59.      */
  60.     KeyList         getKeys    (in string filter)
  61.         raises (NotFound, BackendFailed);
  62.  
  63.     /**
  64.      * getType:
  65.      * 
  66.      * Returns: The type of property @key.
  67.      */
  68. #ifdef __ORBIT_IDL__
  69.     TypeCode        getType     (in string key)
  70. #else
  71.     CORBA::TypeCode getType     (in string key)
  72. #endif
  73.         raises (NotFound, BackendFailed);
  74.  
  75.  
  76.     /**
  77.      * getValue:
  78.      *
  79.      * Returns: The current value for property @key.
  80.      */
  81.     any             getValue    (in string key)
  82.         raises (NotFound, BackendFailed);
  83.  
  84.     /**
  85.      * setValue:
  86.      * 
  87.      * Sets the value for property @key to @value
  88.      */
  89.     void            setValue    (in string key, in any value)
  90.         raises (NotFound, InvalidType, ReadOnly, BackendFailed);
  91.   
  92.  
  93.     /**
  94.      * getValue:
  95.      *
  96.      * Returns: A list of properties matching @filter.
  97.      */
  98.     PropertySet     getValues   (in string filter)
  99.          raises (NotFound, BackendFailed);
  100.     
  101.     /**
  102.      * setValue:
  103.      * 
  104.      * Sets the values contained in @set. 
  105.      */
  106.     void            setValues   (in PropertySet set)
  107.         raises (InvalidType, ReadOnly, BackendFailed);
  108.     
  109.     /**
  110.      * getDefault:
  111.      *
  112.      * Returns: The default value for property @key.
  113.      *
  114.      * Property editors can use it to implement a "set property value to
  115.      * default" mechanism.
  116.      *
  117.      */
  118.     any             getDefault  (in string key)
  119.         raises (NotFound, BackendFailed);
  120.                 
  121.     /**
  122.      * getDocTitle:
  123.      *
  124.      * Returns: A short string describing property @key.
  125.      */    
  126.     string          getDocTitle (in string key)
  127.         raises (NotFound, BackendFailed);
  128.                 
  129.     /**
  130.      * getDoc:
  131.      *
  132.      * Returns: A verbose documentation describing property @key.
  133.      */    
  134.     string          getDoc      (in string key)
  135.         raises (NotFound, BackendFailed);
  136.  
  137.     /** 
  138.      * getFlags:
  139.      * 
  140.      * Returns:
  141.      */
  142.     PropertyFlags   getFlags    (in string key)
  143.         raises (NotFound, BackendFailed);
  144.  
  145.     void unImplemented1 ();
  146.     void unImplemented2 ();
  147.     void unImplemented3 ();
  148.     void unImplemented4 ();
  149. };
  150.  
  151. interface ConfigDatabase : PropertyBag {
  152.  
  153.     enum DBFlags {
  154.         _DEFAULT,
  155.         WRITE,
  156.         MANDATORY
  157.     };
  158.  
  159.     /** 
  160.      * isWriteable:
  161.      * 
  162.      * indicates whether the database is writeable or not
  163.      */
  164.     readonly attribute boolean isWriteable;
  165.     
  166.     /** 
  167.      * getDirs:
  168.      * 
  169.      * Returns: A list of directory names.
  170.      */
  171.     KeyList         getDirs     (in string dir)
  172.         raises (NotFound, BackendFailed);
  173.  
  174.     /** 
  175.      * hasDir:
  176.      * 
  177.      * Returns: TRUE if @dir exists. 
  178.      */
  179.     boolean         hasDir      (in string dir)
  180.         raises (BackendFailed);
  181.         
  182.     /** 
  183.      * removeValue:
  184.      * 
  185.      * Remove a value from the database.
  186.      */
  187.     void            removeValue (in string key)
  188.         raises (BackendFailed);
  189.  
  190.     /** 
  191.      * removeDir:
  192.      * 
  193.      * Removes all values contained in directory.
  194.      */
  195.     void            removeDir   (in string dir)
  196.         raises (BackendFailed);
  197.  
  198.     /** 
  199.      * addDatabase:
  200.      * 
  201.      * The added database will be used to lookup default values.
  202.      */
  203.     void            addDatabase (in ConfigDatabase db, in string key, 
  204.                      in DBFlags flags)
  205.         raises (BackendFailed);
  206.  
  207.     /** 
  208.      * sync:
  209.      * 
  210.      * Flush all buffers 
  211.      */
  212.     void            sync        ()
  213.         raises (BackendFailed);
  214.  
  215.     void unImplemented5 ();
  216.     void unImplemented6 ();
  217.     void unImplemented7 ();
  218.     void unImplemented8 ();
  219. };
  220.  
  221. };
  222.  
  223. #endif /* BONOBO_PROPERTY_IDL */
  224.